package Work20241107;

/**
 * @author zdl
 * @date 2024/11/7
 */

import java.util.Scanner;

/**
 * chap1 作业
 */
public class Chap1 {
    public static void main(String[] args) {
        //3.（if 语句）读入一个整数，判断其是奇数还是偶数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数：");
        int num = sc.nextInt();
        String s = jiOuShu(num);
        System.out.println(s);
        System.out.println("======================分割线===========================");
        //8. if判断 年龄 给出对应身份
        System.out.println("请输入一个年龄：");
        int age = sc.nextInt();
        String s1 = people(age);
        System.out.println(s1);
        System.out.println("======================分割线===========================");
        System.out.println("请输入1-5整数：");
        int num2 = sc.nextInt();
        String s2 = fuWa(num2);
        System.out.println(s2);
        System.out.println("======================分割线===========================");
        System.out.println("请输入3个整数：");
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int d = max(a, b, c);
        System.out.println("三个数的最大值为" + d);
        System.out.println("======================分割线===========================");
        System.out.println("请输入一个年份：");
        int year = sc.nextInt();
        String s3 = isRunYear(year);
        System.out.println(s3);
        System.out.println("======================分割线===========================");
        System.out.println("请输入货物重量[公斤]:");
        double weight = sc.nextDouble();
        double s4 = shouMoney(weight);
        System.out.println("收费为=" + s4);
        System.out.println("======================分割线===========================");
        System.out.println("请输入你的税前工资：");
        double money = sc.nextDouble();
        double shuied = shuiMoeny(money);
        System.out.println("您的纳税金额为=" + shuied);
        System.out.println("======================分割线===========================");
        System.out.println("请输入一个三位数：");
        int number3 = sc.nextInt();
        int he= sanSum(number3);
        System.out.println("你输入的"+number3+"各个位数相加为="+he);
        System.out.println("======================分割线===========================");
        System.out.println("请输入三个整数：");
        int n1 =sc.nextInt();
        int n2 =sc.nextInt();
        int n3 =sc.nextInt();
        String s5 = daAndXiao(n1,n2,n3);
        System.out.println("你输入的三个整数，从大到小依次是："+s5);
    }


    //3.（if 语句）读入一个整数，判断其是奇数还是偶数
    public static String jiOuShu(int num) {
        if (num % 2 == 0) {
            return num + "是一个偶数";
        } else {
            return num + "是一个奇数";
        }
    }

    /**
     * 8. （if 语句）读入一个整数，表示一个人的年龄。如果小于6 岁，则输出“儿
     * 童”，
     * 6 岁到13 岁，输出“少儿”；14 岁到18 岁，输出“青少年”；18 岁到35 岁，
     * 输出“青年”；35 岁到50 岁，输出“中年”；50 岁以上输出“中老年”。
     */

    public static String people(int age) {
        if (age >= 50) {
            return "中老年";
        } else if (age >= 35) {
            return "中年";
        } else if (age >= 18) {
            return "青年";
        } else if (age >= 14) {
            return "青少年";
        } else if (age >= 6) {
            return "少儿";
        } else {
            return "儿童";
        }
    }

    /**
     * 9. （switch 语句）读入一个整数，如果是1~5 之间，则分别输出5 个福娃的名
     * 字，否则输出“北京欢迎你”。
     */
    public static String fuWa(int num) {
        switch (num) {
            case 1:
                return "5个福娃的名字";

            case 2:
                return "5个福娃的名字";

            case 3:
                return "5个福娃的名字";

            case 4:
                return "5个福娃的名字";

            case 5:
                return "5个福娃的名字";

            default:
                return "北京欢迎你";
        }
    }

    //10. （if 语句，赋值操作）*读入三个整数，输出这三个整数中最大的一个。
    public static int max(int a, int b, int c) {
        if (a > b && a > c) {
            return a;
        } else if (b > c && b > a) {
            return b;
        } else {
            return c;
        }
    }

    /**
     * 11. （if 语句）*读入一个表示年份的整数，判断这一年是否是闰年。如何判断
     * 一个年份是否是闰年：
     * 1. 如果这个年份能够被4 整除，且不能被100 整除，则这一年是闰年。例
     * 如，1996 年是闰年，而相应的，1993 年就不是闰年。
     * 2. 如果这个年份能够被100 整除，则这个数必须要能被400 整除，才是闰
     * 年。例如，2000 年是闰年，1900 年不是闰年。
     */
    public static String isRunYear(int year) {
        if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
            return year + "年是闰年";
        } else {
            return year + "年是平年";
        }
    }

    /**
     * 13 （if 语句）*托运计费问题：
     * 当货物重量小于20 公斤的时候，收费5 元，大于20 公斤小于100 公斤的时
     * 候超出20 公斤的部分按每0.2 元每公斤计费，如果超出100 公斤的时候，超出
     * 的部分按照每公斤0.15 元计算。
     * 读入货物的重量，输出计算之后货物的运费。
     */
    public static double shouMoney(double weight) {
        double moeny = weight * 5; //小于20
        double moeny1 = 20 * 5 + (weight - 20) * 0.2; //20-100
        double moeny2 = 20 * 5 + 80 * 0.2 + (weight - 100) * 0.15; //大于100
        if (weight <= 20) {
            return moeny;
        } else if (weight <= 100) {
            return moeny1;
        } else {
            return moeny2;
        }
    }

    /**
     * 14（if 语句）*中国的个税计算方法：
     * 应税所得为税前收入扣除2000 元（起征点），然后超出部分，按照以下税率
     * 收税：
     * 500 5%
     * 500-2000 10%
     * 2000-5000 15%
     * 5000-20000 20%
     * 20000-40000 25%
     * 40000-60000 30%
     * 60000-80000 35%
     * 80000-100000 40%
     * 100000 - ? 45%
     * 例：若月收入15000，则应税所得为15000-2000=13000；总的个人所得税为
     * （13000-5000）*20% + （5000-2000）*15% + （2000-500）*10% + 500*5%= 2225
     * 要求：读入一个整数，表示税前收入，输出应当缴纳的个人所得税和税后实
     * 际收入
     */
    public static double shuiMoeny(double money) {
        double chao = money - 2000; //money - 2000>0 需要交税
        if (money < 0){
            return -1;
        }
        if (chao < 2000) {  //2000不用交税
            return 0;
        } else if (chao < 500) {
            double money1 = chao * 0.05;
            return money1;
        } else if (chao < 2000) {
            double money2 = 500 * 0.05 + (chao - 500) * 0.1;
            return money2;
        } else if (chao < 5000) {
            double money3 = 500 * 0.05 + 1500 * 0.1 + (chao - 2000) * 0.15;
            return money3;
        } else if (chao < 20000) {
            double money4 = 500 * 0.05 + 1500 * 0.1 + 3000 * 0.15 + (chao - 5000) * 0.2;
            return money4;
        } else if (chao < 40000) {
            double money5 = 500 * 0.05 + 1500 * 0.1 + 3000 * 0.15 + 15000 * 0.2 + (chao - 20000) * 0.25;
            return money5;
        } else if (chao < 60000) {
            double money6 = 500 * 0.05 + 1500 * 0.1 + 3000 * 0.15 + 15000 * 0.2 + 20000 * 0.25 + (chao - 40000) * 0.3;
            return money6;
        } else if (chao < 80000) {
            double money7 = 500 * 0.05 + 1500 * 0.1 + 3000 * 0.15 + 15000 * 0.2 + 20000 * 0.25 + 20000 * 0.3 + (chao - 60000) * 0.35;
            return money7;
        } else if (chao < 100000) {
            double money8 = 500 * 0.05 + 1500 * 0.1 + 3000 * 0.15 + 15000 * 0.2 + 20000 * 0.25 + 20000 * 0.3 + 20000 * 0.35 + (chao - 100000) * 0.4;
            return money8;
        } else {
            double money9 = 500 * 0.05 + 1500 * 0.1 + 3000 * 0.15 + 15000 * 0.2 + 20000 * 0.25 + 20000 * 0.3 + 20000 * 0.35 + 20000 * 0.4 + (chao - 100000) * 0.45;
            return money9;
        }
    }

    /**
     * 15. （if 语句，操作符）**读入一个三位数，计算其各位数字之和。例如：123
     * 各位数字之和为6
     */
    public static int sanSum(int num){
        if(num < 0 || num >1000){
            return -1;
        }
        int units = num % 10; //个位
        int decade = num / 10 % 10; //十位
        int hundred = num / 100; //百位
        return units+decade+hundred;
    }
    /**
     * 16. （if 语句）**读入三个整数，把这三个整数按照由大到小的顺序输出。
     */
     public static String daAndXiao(int a,int b, int c){
         // 比较并按从大到小输出
         if (a >= b && a >= c) {
             // a 是最大的
             if (b >= c) {
                 // b >= c
                 return a + " " + b + " " + c;
             } else {
                 // c > b
                return a + " " + c + " " + b;
             }
         } else if (b >= a && b >= c) {
             // b 是最大的
             if (a >= c) {
                 // a >= c
                 return b + " " + a + " " + c;
             } else {
                 // c > a
                 return b + " " + c + " " + a;
             }
         } else {
             // c 是最大的
             if (a >= b) {
                 // a >= b
                 return c + " " + a + " " + b;
             } else {
                 // b > a
                 return c + " " + b + " " + a;
             }
         }
     }
}

